package com.changyinBus.common.core.domain.entity;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.changyinBus.common.core.domain.BaseEntity;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 产品分类
 */
@Data
public class SysCate extends BaseEntity {
    @JsonSerialize(using = ToStringSerializer.class)
    private long cateId;
    @JsonSerialize(using = ToStringSerializer.class)
    private long parentId = 0;
    /**
     * 祖级列表
     */
    private String ancestors;
    /**
     * 栏目分类ID 2 发展历程 3荣誉证书 4研发创新
     */
    private int typeId;
    /**
     * 产品分类名称
     */
    private String cateName;
    /**
     * 产品分类简介
     */
    private String cateIntro;

    private JSONObject cateIntroJSON;
    /**
     * 产品分类图片
     */
    private String cateImage;
    /**
     * 分类排序
     */
    private int sort;
    /**
     * 分类状态（0正常 1停用）
     */
    private String status;
    /**
     * 租户ID
     */
    private long tenantId;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private int delFlag;

    /** 子分类 */
    private List<SysCate> children = new ArrayList<SysCate>();

    public SysCate(){}

    public SysCate(long tenantId){
        this.tenantId = tenantId;
    }

    public void setCateIntroJSON(JSONObject cateIntroJSON){
        this.cateIntroJSON = cateIntroJSON;
    }

    public JSONObject getCateIntroJSON(){
        if(cateIntro != null && JSON.isValid(cateIntro)){
            return JSONObject.parseObject(cateIntro);
        }else{
            return new JSONObject();
        }
    }
}
